#!/bin/bash

# Dify 数据分析项目启动脚本

echo "🚀 开始启动 Dify 数据分析项目..."

# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装，请先安装 Docker"
    exit 1
fi

if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose 未安装，请先安装 Docker Compose"
    exit 1
fi

# 创建必要的目录
echo "📁 创建项目目录..."
mkdir -p volumes/app/storage
mkdir -p volumes/db/data
mkdir -p volumes/redis/data
mkdir -p volumes/weaviate
mkdir -p reports
mkdir -p visualizations

# 设置权限
chmod 755 volumes/app/storage
chmod 755 volumes/db/data
chmod 755 volumes/redis/data
chmod 755 volumes/weaviate

# 检查环境变量文件
if [ ! -f ".env" ]; then
    echo "⚠️  环境变量文件 .env 不存在，正在从 env.example 创建..."
    cp env.example .env
    echo "✅ 已创建 .env 文件，请编辑其中的配置"
fi

# 启动服务
echo "🔧 启动 Dify 服务..."
docker-compose up -d

# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 30

# 检查服务状态
echo "🔍 检查服务状态..."
docker-compose ps

# 检查服务健康状态
echo "🏥 检查服务健康状态..."

# 检查数据库
if docker-compose exec -T db pg_isready -U postgres; then
    echo "✅ 数据库服务正常"
else
    echo "❌ 数据库服务异常"
fi

# 检查Redis
if docker-compose exec -T redis redis-cli ping | grep -q "PONG"; then
    echo "✅ Redis 服务正常"
else
    echo "❌ Redis 服务异常"
fi

# 检查API服务
if curl -s http://localhost/api/health > /dev/null 2>&1; then
    echo "✅ API 服务正常"
else
    echo "⚠️  API 服务可能还在启动中..."
fi

# 检查Web服务
if curl -s http://localhost > /dev/null 2>&1; then
    echo "✅ Web 服务正常"
else
    echo "⚠️  Web 服务可能还在启动中..."
fi

echo ""
echo "🎉 Dify 数据分析项目启动完成！"
echo ""
echo "📊 访问地址："
echo "  - Web 控制台: http://localhost"
echo "  - API 文档: http://localhost/docs"
echo "  - 数据库: localhost:5432"
echo "  - Redis: localhost:6379"
echo "  - Weaviate: localhost:8080"
echo ""
echo "📖 使用说明："
echo "  1. 访问 Web 控制台创建应用"
echo "  2. 导入 workflows/data_analysis_workflow.json 工作流"
echo "  3. 配置数据源和模型"
echo "  4. 运行数据分析任务"
echo ""
echo "🔧 管理命令："
echo "  - 停止服务: docker-compose stop"
echo "  - 重启服务: docker-compose restart"
echo "  - 查看日志: docker-compose logs -f"
echo "  - 删除服务: docker-compose down"
echo ""

# 如果需要安装Python依赖
if [ -f "requirements.txt" ]; then
    echo "🐍 检测到 requirements.txt，是否安装Python依赖？(y/n)"
    read -r install_deps
    if [ "$install_deps" = "y" ]; then
        echo "📦 安装Python依赖..."
        pip install -r requirements.txt
        echo "✅ Python依赖安装完成"
    fi
fi

echo "🎯 项目已准备就绪，开始你的数据分析之旅吧！" 